module.exports = Behavior({
  data: {
    page: 1,
    moreFlag: true,
    detailList: [],
    refreshFlag: false
  },
  methods: {
    // 初始化
    async getListChangeStatus() {
      this.setData({
        page: 1,
        detailList: [],
        moreFlag: true
      })
      await this.getList()
    },
    // 获取列表
    async getList() {
      if (!this.data.moreFlag) {
        // ... // 可以增加处理，例如吐司等
        return
      }
      let { detailList,fun } = await this.getRemoteList()
      if (detailList) {
        let detailListTem = this.data.detailList
        if (this.data.page == 1) {
          detailListTem = []
        }
        if (detailList.length < this.data.pageSize) {
          //表示没有更多数据了
          this.setData({
            detailList: detailListTem.concat(detailList),
            moreFlag: false
          })
        } else {
          this.setData({
            detailList: detailListTem.concat(detailList),
            moreFlag: true,
            page: this.data.page + 1
          })
        }
        // 可能需要一些处理，例如获取容器的高度之类的，又或者scroll-into-view对应id
        if(fun && fun instanceof Function) fun()
      }
    },
    // 到达底部
    reachBottom() {
      console.log('--reachBottom--')
      this.getList()
    },
    // 下拉刷新重置
    pullDownRefresh() {
      this.setData({
        page: 1,
        hasMoreData: true,
        detailList: []
      })
      this.getList()
      setTimeout(() => {
        this.setData({
          refreshFlag: false
        })
      }, 500)
    }
  }
})

// 页面中引入
// import pagination from '../../behaviors/pagination.js'
// Page({
//   data: {
//     pageSize: 10
//   },
//   behaviors: [pagination],
//   onShow() {
//     this.getListChangeStatus()
//   },
//   async getRemoteList() {
//     let { page, pageSize } = this.data
//     const returnObj = {}
//     const res = await XXX // 请求接口
//     // ... // 处理数据
//     returnObj.detailList = data
//     return returnObj
//   }
// })

// xml
{/* <scroll-view scroll-y refresher-enabled refresher-triggered="{{refreshFlag}}" bindrefresherrefresh="pullDownRefresh" bindscrolltolower="reachBottom" style="height:100%;">
<!--定义内容-->
</scroll-view> */}



